"""
继承：
- 核心：一个类（子类）可以 “继承” 另一个类（父类）的属性和方法，减少重复代码。
- 语法：`class 子类名(父类名):`
"""
# 父类：Person（人）
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print(f"{self.name}在吃饭")


# 子类：Student（学生）继承 Person
class Student(Person):
    # 子类初始化：调用父类初始化方法（super()）
    def __init__(self, name, age, school):
        super().__init__(name, age)  # 继承父类的name和age
        self.school = school  # 子类特有属性

    # 子类特有方法
    def study(self):
        print(f"{self.name}在{self.school}学习")


# 子类：Teacher（老师）继承 Person
class Teacher(Person):
    def __init__(self, name, age, subject):
        super().__init__(name, age)
        self.subject = subject  # 特有属性

    def teach(self):
        print(f"{self.name}教{self.subject}")


# 使用
stu = Student("张三", 18, "一中")
stu.eat()  # 继承父类方法：张三在吃饭
stu.study()  # 子类特有方法：张三在一中学习

tea = Teacher("李四", 35, "数学")
tea.eat()  # 继承父类方法：李四在吃饭
tea.teach()  # 子类特有方法：李四教数学